This invention generally relates to an interface for coupling a user input device to a host, and more specifically, to an interface that selectively interfaces to either a universal serial bus (USB) port or a personal system/2 (PS/2) port on a host or other computing device.
Provision of USB ports on personal computers (PCs) is rapidly becoming an important feature, and the increasing availability of USB-capable peripheral devices may eventually eliminate the need to provide conventional RS-232 serial ports and parallel ports. While there are many advantages to using a peripheral device that is able to connect to a computer through the USB port, one of the more significant is that several USB-enabled peripheral devices can be daisy chained together and connected to only a single USB port on a PC. For example, a USB mouse can be connected to a USB port on a monitor, and the monitor in turn, can be connected to a USB port on a PC. Theoretically, up to 127 USB-enabled peripherals can be chained together. Another important advantage of a USB port is that the connection (and disconnection) of USB peripherals to the port will be recognized by a USB-compliant operating system, such as Microsoft Corporation""s WINDOWS 98 or WINDOWS 2000 operating systems, without the need to reboot the computer. Thus, it is possible to connect a USB-capable digital camera to a USB port on a PC while the PC is operating, in order to download digital photographs for storage, touchup, and/or printing with the PC, and the connection to the camera will be recognized and configured by the operating system without requiring the PC to be rebooted.
To enable connection of additional USB peripheral devices that may not include any USB port for daisy-chaining to other USB devices such as a mouse, speakers, a modem, or a digital camera, a USB hub is required. In some cases, a powered USB hub may be useful to provide the electrical power needed to energize a number of USB-capable peripheral devices. However, if only a few low-power USB peripheral devices are used, it may be preferable for at least one of the USB peripheral devices to include additional USB ports to avoid the need for a stand-alone USB hub. The only significant problem with providing a plurality of USB ports for this purpose on a USB-capable peripheral device may be the limitation on available power, since the power available for all of the USB devices connected to a PC in this manner is only that relatively limited power supplied through a USB port on the PC.
Compliance with the USB specification by peripheral device and computer manufacturers has not been achieved without problems. Early USB peripheral devices have not always functioned as expected, in part because they did not fully conform to the USB specification. Other problems have arisen due to delays in properly implementing all of the software and hardware support on a PC required for a particular USB device to work properly. For instance, USB-capable keyboards may not be properly recognized and enabled during boot up of a computer unless the basic input/output system (BIOS) on the computer motherboard is fully compatible with and supportive of the USB specification. Failure of the BIOS to properly recognize a USB-capable keyboard will prevent the keyboard from being used for input and control of the PC until a USB-compliant operating system is running on the computer. As a result, user actuation of keys on the keyboard that may be required to interact with the BIOS during the boot up process will not be recognized by the operating system. This problem is significant, because in order to access and change BIOS settings that are stored in the non-volatile memory of a PC by running a BIOS setup routine, a user must typically enter a specific key combination during the boot up process. However, if the BIOS installed on the PC is not fully USB compliant, a USB keyboard may not be operational during the boot up of the PC, precluding a user from accessing the BIOS parameters with the BIOS setup routine. If the BIOS setup routine cannot be accessed, problems can arise in which the USB-compliant operating system cannot be loaded.
To avoid problems of this type, it might seem preferable to supply keyboards that are designed to interface with a computer only through a PS/2 port. PS/2 keyboards are recognized and supported by virtually all operating systems commonly used on a PC, and more importantly, by most BIOS systems currently in use. However, there is a trend to simplify PCs by eliminating PS/2, parallel, and serial ports. In such PCs, the BIOS should be fully USB compatible, and thus capable of properly initializing and enabling USB-compliant keyboards, so that all functions on the USB-capable keyboard are accessible and usablexe2x80x94even during boot-up of the PC. Thus, there will be a growing market for keyboards that are designed to connect to a PC through a USB port on the computer.
Even if a USB-capable keyboard is not properly initialized or supported by the BIOS of an older computer during boot up, there are clear advantages in providing a USB-capable keyboard that can also function as a USB hub when the keyboard is connected to the USB port of a PC, since many new peripheral devices are of the USB-compliant type. Thus, it is desirable to provide keyboards that can work properly with both older PCs that are not fully USB compliant via the PS/2 port, and newer PCs that are fully USB compliant, via the USB port. In addition, keyboards should provide at least one or more auxiliary USB ports, so that additional USB peripheral devices can be coupled to a USB port (if available) on the PC through any such USB ports on the keyboard. Furthermore, such a keyboard should be able to recognize whether it is connected to a PS/2 or USB port on a host or PC and be able to give preference to one of the ports, if both are available. Also, even if the keyboard is connected to the PS/2 port on the PC for input of keyboard data, it should be capable of serving as a USB hub for connection of USB-capable peripheral devices through the connection of the keyboard to a USB port (if available) on the PC. Currently, it does not appear that these functions are available on any prior art keyboards.
In accord with the present invention, a user input device is defined that is adapted to selectively couple and communicate user input data through at least one of a USB port and an alternative port of a host. The user input device includes at least one data switch capable of being activated by a user to determine data that are transmitted to a host. A power sense circuit determines whether electrical power is being supplied to the user input device from the alternative port of a host and produces a signal indicative of the source of power. A state switch is coupled to the power sense circuit and to the one or more data switches. The state switch receives the signal produced by the power sense circuit, and in response to the signal indicating that the alternative port is supplying electrical power, enables the host to receive data transmitted from the one or more data switches through the alternative port. Otherwise, the state switch enables the host to receive data transmitted from the one or more data switches through the USB port.
Also preferably included is a USB hub circuit having at least one auxiliary USB port adapted to connect to a USB peripheral device. This auxiliary USB port is then able to transfer data between the USB peripheral device and the USB port of the host device.
In a preferred embodiment of the invention, the alternative port comprises a PS/2 port. Also, the at least one data switch comprises a plurality of alphanumeric keys so that the user input device comprises a USB-capable keyboard. Included in this preferred embodiment is signal conditioning circuitry that conditions data signals and power signals.
The alternative port, which is a PS/2 port in the embodiment disclosed below, has priority over the USB port. Thus, the state switch will always employ the PS/2 port for exchanging data, if the signal produced by the power sense circuit indicates that the PS/2 port is providing electrical current to the user input device. If the host has previously been receiving data transmitted from the at least one data switch through the USB port, upon detecting a change, in which electrical power is being supplied from the PS/2 port of the host to the user input device, the signal produced by the power sense circuit will change. This change will cause the state switch to stop the host from receiving the data from the one or more data switches through the USB port, and instead enable the host to receive the data through the PS/2 port.
If the host has been receiving data transmitted from the one or more data switches through the PS/2 port, upon detecting a change in which electrical power is no longer available from the PS/2 port of the host, the signal produced by the power sense circuit changes. This change will cause the state switch to stop the host from receiving the data from the one or more data switches through the PS/2 port, and instead enable the host to receive the data through the USB port.
Preferably also included is a data format circuit that is coupled to the at least one data switch and to the state switch. The data format circuit formats the data determined by the one or more data switches for input to the PS/2 port if the state switch has enabled the data to be transmitted to the PS/2 port of the host. Otherwise, the data format circuit formats the data for input to the USB port of the host.
A cable coupled at one end to the data format circuit is preferably included. At an opposite end, the cable includes a USB port connector adapted to connect to the USB port on the host and a PS/2 port connector that is adapted to couple to the PS/2 port on the host.
Another aspect of the present invention is directed to a method for enabling a user input device to be selectively coupled to communicate data signals produced as a result of user interaction with the user input device with either a USB port on a host or an alternative port on the host. The method includes steps that are generally consistent with the functions of the elements of the user input device discussed above.